#ifndef __PHIDGETINTERFACEKIT_H__
#define __PHIDGETINTERFACEKIT_H__

#include "Phidget.h"

#define PIK_MAXCOUNT	32

class PhidgetManager;

class PhidgetInterfaceKit : public Phidget
{
	private:
	int		inputCount;
	int		outputCount;
	int		sensorCount;
	int		inputs[PIK_MAXCOUNT];
	int		outputs[PIK_MAXCOUNT];
	int		sensors[PIK_MAXCOUNT];
	PhidgetManager	*_manager;

	static int InputChangeHandler(CPhidgetInterfaceKitHandle ifk, void *userdata, int index, int value);
	static int OutputChangeHandler(CPhidgetInterfaceKitHandle ifk, void *userdata, int index, int value);
	static int SensorChangeHandler(CPhidgetInterfaceKitHandle ifk, void *userdata, int index, int value);
	virtual void AttachHandler();
	
	public:
	PhidgetInterfaceKit(int serial, PhidgetManager *manager);
	
	int InputCount();
	int OutputCount();
	int SensorCount();
	
	virtual std::list<std::string> SupportedProperties();
	virtual std::string GetPropertyValue(std::string property);
	virtual void SetPropertyValue(std::string property, std::string value);
};

#endif /* __PHIDGETINTERFACEKIT_H__ */

